{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Anomaly Detection\n",
    "\n",
    "In this exercise, you will implement the anomaly detection algorithm and apply it to detect failing servers on a network. \n",
    "\n",
    "\n",
    "\n",
    "# Outline\n",
    "- [ 1 - Packages ](#1)\n",
    "- [ 2 - Anomaly detection](#2)\n",
    "  - [ 2.1 Problem Statement](#2.1)\n",
    "  - [ 2.2  Dataset](#2.2)\n",
    "  - [ 2.3 Gaussian distribution](#2.3)\n",
    "    - [ Exercise 1](#ex01)\n",
    "    - [ Exercise 2](#ex02)\n",
    "  - [ 2.4 High dimensional dataset](#2.4)\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<a name=\"1\"></a>\n",
    "## 1 - Packages \n",
    "\n",
    "First, let's run the cell below to import all the packages that you will need during this assignment.\n",
    "- [numpy](www.numpy.org) is the fundamental package for working with matrices in Python.\n",
    "- [matplotlib](http://matplotlib.org) is a famous library to plot graphs in Python.\n",
    "- ``utils.py`` contains helper functions for this assignment. You do not need to modify code in this file.\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "from utils import *\n",
    "\n",
    "%matplotlib inline"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<a name=\"2\"></a>\n",
    "## 2 - Anomaly detection\n",
    "\n",
    "<a name=\"2.1\"></a>\n",
    "### 2.1 Problem Statement\n",
    "\n",
    "In this exercise, you will implement an anomaly detection algorithm to\n",
    "detect anomalous behavior in server computers.\n",
    "\n",
    "The dataset contains two features - \n",
    "   * throughput (mb/s) and \n",
    "   * latency (ms) of response of each server.\n",
    "\n",
    "While your servers were operating, you collected $m=307$ examples of how they were behaving, and thus have an unlabeled dataset $\\{x^{(1)}, \\ldots, x^{(m)}\\}$. \n",
    "* You suspect that the vast majority of these examples are “normal” (non-anomalous) examples of the servers operating normally, but there might also be some examples of servers acting anomalously within this dataset.\n",
    "\n",
    "You will use a Gaussian model to detect anomalous examples in your\n",
    "dataset. \n",
    "* You will first start on a 2D dataset that will allow you to visualize what the algorithm is doing.\n",
    "* On that dataset you will fit a Gaussian distribution and then find values that have very low probability and hence can be considered anomalies. \n",
    "* After that, you will apply the anomaly detection algorithm to a larger dataset with many dimensions. \n",
    "\n",
    "<a name=\"2.2\"></a>\n",
    "### 2.2  Dataset\n",
    "\n",
    "You will start by loading the dataset for this task. \n",
    "- The `load_data()` function shown below loads the data into the variables `X_train`, `X_val` and `y_val` \n",
    "    - You will use `X_train` to fit a Gaussian distribution \n",
    "    - You will use `X_val` and `y_val` as a cross validation set to select a threshold and determine anomalous vs normal examples"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Load the dataset\n",
    "X_train, X_val, y_val = load_data()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### View the variables\n",
    "Let's get more familiar with your dataset.  \n",
    "- A good place to start is to just print out each variable and see what it contains.\n",
    "\n",
    "The code below prints the first five elements of each of the variables"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "The first 5 elements of X_train are:\n",
      " [[13.04681517 14.74115241]\n",
      " [13.40852019 13.7632696 ]\n",
      " [14.19591481 15.85318113]\n",
      " [14.91470077 16.17425987]\n",
      " [13.57669961 14.04284944]]\n"
     ]
    }
   ],
   "source": [
    "# Display the first five elements of X_train\n",
    "print(\"The first 5 elements of X_train are:\\n\", X_train[:5])  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "The first 5 elements of X_val are\n",
      " [[15.79025979 14.9210243 ]\n",
      " [13.63961877 15.32995521]\n",
      " [14.86589943 16.47386514]\n",
      " [13.58467605 13.98930611]\n",
      " [13.46404167 15.63533011]]\n"
     ]
    }
   ],
   "source": [
    "# Display the first five elements of X_val\n",
    "print(\"The first 5 elements of X_val are\\n\", X_val[:5])  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "The first 5 elements of y_val are\n",
      " [0 0 0 0 0]\n"
     ]
    }
   ],
   "source": [
    "# Display the first five elements of y_val\n",
    "print(\"The first 5 elements of y_val are\\n\", y_val[:5])  "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Check the dimensions of your variables\n",
    "\n",
    "Another useful way to get familiar with your data is to view its dimensions.\n",
    "\n",
    "The code below prints the shape of `X_train`, `X_val` and `y_val`."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "The shape of X_train is: (307, 2)\n",
      "The shape of X_val is: (307, 2)\n",
      "The shape of y_val is:  (307,)\n"
     ]
    }
   ],
   "source": [
    "print ('The shape of X_train is:', X_train.shape)\n",
    "print ('The shape of X_val is:', X_val.shape)\n",
    "print ('The shape of y_val is: ', y_val.shape)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Visualize your data\n",
    "\n",
    "Before starting on any task, it is often useful to understand the data by visualizing it. \n",
    "- For this dataset, you can use a scatter plot to visualize the data (`X_train`), since it has only two properties to plot (throughput and latency)\n",
    "\n",
    "- Your plot should look similar to the one below\n",
    "<img src=\"images/figure1.png\" width=\"500\" height=\"500\">"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Create a scatter plot of the data. To change the markers to blue \"x\",\n",
    "# we used the 'marker' and 'c' parameters\n",
    "plt.scatter(X_train[:, 0], X_train[:, 1], marker='x', c='b') \n",
    "\n",
    "# Set the title\n",
    "plt.title(\"The first dataset\")\n",
    "# Set the y-axis label\n",
    "plt.ylabel('Throughput (mb/s)')\n",
    "# Set the x-axis label\n",
    "plt.xlabel('Latency (ms)')\n",
    "# Set axis range\n",
    "plt.axis([0, 30, 0, 30])\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<a name=\"2.3\"></a>\n",
    "### 2.3 Gaussian distribution\n",
    "\n",
    "To perform anomaly detection, you will first need to fit a model to the data’s distribution.\n",
    "\n",
    "* Given a training set $\\{x^{(1)}, ..., x^{(m)}\\}$ you want to estimate the Gaussian distribution for each\n",
    "of the features $x_i$. \n",
    "\n",
    "* Recall that the Gaussian distribution is given by\n",
    "\n",
    "   $$ p(x ; \\mu,\\sigma ^2) = \\frac{1}{\\sqrt{2 \\pi \\sigma ^2}}\\exp^{ - \\frac{(x - \\mu)^2}{2 \\sigma ^2} }$$\n",
    "\n",
    "   where $\\mu$ is the mean and $\\sigma^2$ controls the variance.\n",
    "   \n",
    "* For each feature $i = 1\\ldots n$, you need to find parameters $\\mu_i$ and $\\sigma_i^2$ that fit the data in the $i$-th dimension $\\{x_i^{(1)}, ..., x_i^{(m)}\\}$ (the $i$-th dimension of each example).\n",
    "\n",
    "### 2.2.1 Estimating parameters for a Gaussian\n",
    "\n",
    "**Implementation**: \n",
    "\n",
    "Your task is to complete the code in `estimate_gaussian` below."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<a name=\"ex01\"></a>\n",
    "### Exercise 1\n",
    "\n",
    "Please complete the `estimate_gaussian` function below to calculate `mu` (mean for each feature in `X`)and `var` (variance for each feature in `X`). \n",
    "\n",
    "You can estimate the parameters, ($\\mu_i$, $\\sigma_i^2$), of the $i$-th\n",
    "feature by using the following equations. To estimate the mean, you will\n",
    "use:\n",
    "\n",
    "$$\\mu_i = \\frac{1}{m} \\sum_{j=1}^m x_i^{(j)}$$\n",
    "\n",
    "and for the variance you will use:\n",
    "$$\\sigma_i^2 = \\frac{1}{m} \\sum_{j=1}^m (x_i^{(j)} - \\mu_i)^2$$\n",
    "\n",
    "If you get stuck, you can check out the hints presented after the cell below to help you with the implementation."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [],
   "source": [
    "# UNQ_C1\n",
    "# GRADED FUNCTION: estimate_gaussian\n",
    "\n",
    "def estimate_gaussian(X): \n",
    "    \"\"\"\n",
    "    Calculates mean and variance of all features \n",
    "    in the dataset\n",
    "    \n",
    "    Args:\n",
    "        X (ndarray): (m, n) Data matrix\n",
    "    \n",
    "    Returns:\n",
    "        mu (ndarray): (n,) Mean of all features\n",
    "        var (ndarray): (n,) Variance of all features\n",
    "    \"\"\"\n",
    "\n",
    "    m, n = X.shape\n",
    "    \n",
    "    ### START CODE HERE ### \n",
    "    mu = 1 / m * np.sum(X, axis = 0)\n",
    "    var = 1 / m * np.sum((X - mu) ** 2, axis = 0)\n",
    "    \n",
    "    ### END CODE HERE ### \n",
    "        \n",
    "    return mu, var"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<details>\n",
    "  <summary><font size=\"3\" color=\"darkgreen\"><b>Click for hints</b></font></summary>\n",
    "  \n",
    "   * You can implement this function in two ways: \n",
    "      * 1 - by having two nested for loops - one looping over the **columns** of `X` (each feature) and then looping over each data point. \n",
    "      * 2 - in a vectorized manner by using `np.sum()` with `axis = 0` parameter (since we want the sum for each column)\n",
    "\n",
    "    \n",
    "   * Here's how you can structure the overall implementation of this function for the vectorized implementation:\n",
    "     ```python  \n",
    "    def estimate_gaussian(X): \n",
    "        m, n = X.shape\n",
    "    \n",
    "        ### START CODE HERE ### \n",
    "        mu = # Your code here to calculate the mean of every feature\n",
    "        var = # Your code here to calculate the variance of every feature \n",
    "        ### END CODE HERE ### \n",
    "        \n",
    "        return mu, var\n",
    "    ```\n",
    "\n",
    "    If you're still stuck, you can check the hints presented below to figure out how to calculate `mu` and `var`.\n",
    "    \n",
    "    <details>\n",
    "          <summary><font size=\"2\" color=\"darkblue\"><b>Hint to calculate mu</b></font></summary>\n",
    "           &emsp; &emsp; You can use <a href=\"https://numpy.org/doc/stable/reference/generated/numpy.sum.html\">np.sum</a> to with `axis = 0` parameter to get the sum for each column of an array\n",
    "          <details>\n",
    "              <summary><font size=\"2\" color=\"blue\"><b>&emsp; &emsp; More hints to calculate mu</b></font></summary>\n",
    "               &emsp; &emsp; You can compute mu as <code>mu = 1 / m * np.sum(X, axis = 0)</code>\n",
    "           </details>\n",
    "    </details>\n",
    "    \n",
    "    <details>\n",
    "          <summary><font size=\"2\" color=\"darkblue\"><b>Hint to calculate var</b></font></summary>\n",
    "           &emsp; &emsp; You can use <a href=\"https://numpy.org/doc/stable/reference/generated/numpy.sum.html\">np.sum</a> to with `axis = 0` parameter to get the sum for each column of an array and <code>**2</code> to get the square.\n",
    "          <details>\n",
    "              <summary><font size=\"2\" color=\"blue\"><b>&emsp; &emsp; More hints to calculate var</b></font></summary>\n",
    "               &emsp; &emsp; You can compute var as <code> var = 1 / m * np.sum((X - mu) ** 2, axis = 0)</code>\n",
    "           </details>\n",
    "    </details>\n",
    "    \n",
    "</details>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "You can check if your implementation is correct by running the following test code:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Mean of each feature: [14.11222578 14.99771051]\n",
      "Variance of each feature: [1.83263141 1.70974533]\n",
      "\u001b[92mAll tests passed!\n"
     ]
    }
   ],
   "source": [
    "# Estimate mean and variance of each feature\n",
    "mu, var = estimate_gaussian(X_train)              \n",
    "\n",
    "print(\"Mean of each feature:\", mu)\n",
    "print(\"Variance of each feature:\", var)\n",
    "    \n",
    "# UNIT TEST\n",
    "from public_tests import *\n",
    "estimate_gaussian_test(estimate_gaussian)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**Expected Output**:\n",
    "<table>\n",
    "  <tr>\n",
    "    <td> <b>Mean of each feature: <b>  </td> \n",
    "    <td> [14.11222578 14.99771051]</td> \n",
    "   </tr>    \n",
    "   <tr>\n",
    "    <td> <b>Variance of each feature: <b>  </td>\n",
    "     <td> [1.83263141 1.70974533] </td> \n",
    "  </tr>\n",
    "</table>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Now that you have completed the code in `estimate_gaussian`, we will visualize the contours of the fitted Gaussian distribution. \n",
    "\n",
    "You should get a plot similar to the figure below. \n",
    "<img src=\"images/figure2.png\" width=\"500\" height=\"500\">\n",
    "\n",
    "\n",
    "From your plot you can see that most of the examples are in the region with the highest probability, while the anomalous examples are in the regions with lower probabilities."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Returns the density of the multivariate normal\n",
    "# at each data point (row) of X_train\n",
    "p = multivariate_gaussian(X_train, mu, var)\n",
    "\n",
    "#Plotting code \n",
    "visualize_fit(X_train, mu, var)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 2.2.2 Selecting the threshold $\\epsilon$\n",
    "\n",
    "Now that you have estimated the Gaussian parameters, you can investigate which examples have a very high probability given this distribution and which examples have a very low probability.  \n",
    "\n",
    "* The low probability examples are more likely to be the anomalies in our dataset. \n",
    "* One way to determine which examples are anomalies is to select a threshold based on a cross validation set. \n",
    "\n",
    "In this section, you will complete the code in `select_threshold` to select the threshold $\\varepsilon$ using the $F_1$ score on a cross validation set.\n",
    "\n",
    "* For this, we will use a cross validation set\n",
    "$\\{(x_{\\rm cv}^{(1)}, y_{\\rm cv}^{(1)}),\\ldots, (x_{\\rm cv}^{(m_{\\rm cv})}, y_{\\rm cv}^{(m_{\\rm cv})})\\}$, where the label $y=1$ corresponds to an anomalous example, and $y=0$ corresponds to a normal example. \n",
    "* For each cross validation example, we will compute $p(x_{\\rm cv}^{(i)})$. The vector of all of these probabilities $p(x_{\\rm cv}^{(1)}), \\ldots, p(x_{\\rm cv}^{(m_{\\rm cv)}})$ is passed to `select_threshold` in the vector `p_val`. \n",
    "* The corresponding labels $y_{\\rm cv}^{(1)}, \\ldots, y_{\\rm cv}^{(m_{\\rm cv)}}$ is passed to the same function in the vector `y_val`."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<a name=\"ex02\"></a>\n",
    "### Exercise 2\n",
    "Please complete the `select_threshold` function below to find the best threshold to use for selecting outliers based on the results from a validation set (`p_val`) and the ground truth (`y_val`). \n",
    "\n",
    "* In the provided code `select_threshold`, there is already a loop that will try many different values of $\\varepsilon$ and select the best $\\varepsilon$ based on the $F_1$ score. \n",
    "\n",
    "* You need implement code to calculate the F1 score from choosing `epsilon` as the threshold and place the value in `F1`. \n",
    "\n",
    "  * Recall that if an example $x$ has a low probability $p(x) < \\varepsilon$, then it is classified as an anomaly. \n",
    "        \n",
    "  * Then, you can compute precision and recall by: \n",
    "   $$\\begin{aligned}\n",
    "   prec&=&\\frac{tp}{tp+fp}\\\\\n",
    "   rec&=&\\frac{tp}{tp+fn},\n",
    "   \\end{aligned}$$ where\n",
    "    * $tp$ is the number of true positives: the ground truth label says it’s an anomaly and our algorithm correctly classified it as an anomaly.\n",
    "    * $fp$ is the number of false positives: the ground truth label says it’s not an anomaly, but our algorithm incorrectly classified it as an anomaly.\n",
    "    * $fn$ is the number of false negatives: the ground truth label says it’s an anomaly, but our algorithm incorrectly classified it as not being anomalous.\n",
    "\n",
    "  * The $F_1$ score is computed using precision ($prec$) and recall ($rec$) as follows:\n",
    "    $$F_1 = \\frac{2\\cdot prec \\cdot rec}{prec + rec}$$ \n",
    "\n",
    "**Implementation Note:** \n",
    "In order to compute $tp$, $fp$ and $fn$, you may be able to use a vectorized implementation rather than loop over all the examples.\n",
    "\n",
    "\n",
    "If you get stuck, you can check out the hints presented after the cell below to help you with the implementation."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [],
   "source": [
    "# UNQ_C2\n",
    "# GRADED FUNCTION: select_threshold\n",
    "\n",
    "def select_threshold(y_val, p_val): \n",
    "    \"\"\"\n",
    "    Finds the best threshold to use for selecting outliers \n",
    "    based on the results from a validation set (p_val) \n",
    "    and the ground truth (y_val)\n",
    "    \n",
    "    Args:\n",
    "        y_val (ndarray): Ground truth on validation set\n",
    "        p_val (ndarray): Results on validation set\n",
    "        \n",
    "    Returns:\n",
    "        epsilon (float): Threshold chosen \n",
    "        F1 (float):      F1 score by choosing epsilon as threshold\n",
    "    \"\"\" \n",
    "\n",
    "    best_epsilon = 0\n",
    "    best_F1 = 0\n",
    "    F1 = 0\n",
    "    \n",
    "    step_size = (max(p_val) - min(p_val)) / 1000\n",
    "    \n",
    "    for epsilon in np.arange(min(p_val), max(p_val), step_size):\n",
    "    \n",
    "        ### START CODE HERE ### \n",
    "        predictions = (p_val < epsilon)\n",
    "        tp = np.sum((predictions == 1) & (y_val == 1))\n",
    "        fn = np.sum((predictions == 0) & (y_val == 1))\n",
    "        fp = sum((predictions == 1) & (y_val == 0))\n",
    "        prec = tp / (tp + fp)\n",
    "        rec = tp / (tp + fn)\n",
    "        F1 = 2 * prec * rec / (prec + rec)\n",
    "        ### END CODE HERE ### \n",
    "        \n",
    "        if F1 > best_F1:\n",
    "            best_F1 = F1\n",
    "            best_epsilon = epsilon\n",
    "        \n",
    "    return best_epsilon, best_F1"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<details>\n",
    "  <summary><font size=\"3\" color=\"darkgreen\"><b>Click for hints</b></font></summary>\n",
    "\n",
    "   * Here's how you can structure the overall implementation of this function for the vectorized implementation:\n",
    "     ```python  \n",
    "    def select_threshold(y_val, p_val): \n",
    "        best_epsilon = 0\n",
    "        best_F1 = 0\n",
    "        F1 = 0\n",
    "    \n",
    "        step_size = (max(p_val) - min(p_val)) / 1000\n",
    "    \n",
    "        for epsilon in np.arange(min(p_val), max(p_val), step_size):\n",
    "    \n",
    "            ### START CODE HERE ### \n",
    "            predictions = # Your code here to calculate predictions for each example using epsilon as threshold\n",
    "        \n",
    "            tp = # Your code here to calculate number of true positives\n",
    "            fp = # Your code here to calculate number of false positives\n",
    "            fn = # Your code here to calculate number of false negatives\n",
    "        \n",
    "            prec = # Your code here to calculate precision\n",
    "            rec = # Your code here to calculate recall\n",
    "        \n",
    "            F1 = # Your code here to calculate F1\n",
    "            ### END CODE HERE ### \n",
    "        \n",
    "            if F1 > best_F1:\n",
    "                best_F1 = F1\n",
    "                best_epsilon = epsilon\n",
    "        \n",
    "        return best_epsilon, best_F1\n",
    "    ```\n",
    "\n",
    "    If you're still stuck, you can check the hints presented below to figure out how to calculate each variable.\n",
    "    \n",
    "    <details>\n",
    "          <summary><font size=\"2\" color=\"darkblue\"><b>Hint to calculate predictions</b></font></summary>\n",
    "           &emsp; &emsp; If an example  𝑥  has a low probability  $p(x) < \\epsilon$ , then it is classified as an anomaly. To get predictions for each example (0/ False for normal and 1/True for anomaly), you can use <code>predictions = (p_val < epsilon)</code>\n",
    "    </details>\n",
    "    \n",
    "    <details>\n",
    "          <summary><font size=\"2\" color=\"darkblue\"><b>Hint to calculate tp, fp, fn</b></font></summary>\n",
    "           &emsp; &emsp; \n",
    "        <ul>\n",
    "          <li>If you have several binary values in an $n$-dimensional\n",
    "binary vector, you can find out how many values in this vector are 0 by using:  `np.sum(v == 0)`</li>\n",
    "          <li>You can also apply a logical *and* operator to such binary vectors. For instance,  `predictions` is a binary vector of the size of your number of cross validation set, where the $i$-th element is 1 if your algorithm considers $x_{\\rm cv}^{(i)}$ an anomaly, and 0 otherwise. </li>\n",
    "          <li>You can then, for example, compute the number of false positives using:  \n",
    "<code>fp = sum((predictions == 1) & (y_val == 0))</code>.</li>\n",
    "        </ul>\n",
    "         <details>\n",
    "              <summary><font size=\"2\" color=\"blue\"><b>&emsp; &emsp; More hints to calculate tp, fn</b></font></summary>\n",
    "               &emsp; &emsp;\n",
    "             <ul>\n",
    "              <li>You can compute tp as <code> tp = np.sum((predictions == 1) & (y_val == 1))</code></li>\n",
    "              <li>You can compute tn as <code> fn = np.sum((predictions == 0) & (y_val == 1))</code></li>  \n",
    "              </ul>\n",
    "          </details>\n",
    "    </details>\n",
    "        \n",
    "    <details>\n",
    "          <summary><font size=\"2\" color=\"darkblue\"><b>Hint to calculate precision</b></font></summary>\n",
    "           &emsp; &emsp; You can calculate precision as <code>prec = tp / (tp + fp)</code>\n",
    "    </details>\n",
    "        \n",
    "    <details>\n",
    "          <summary><font size=\"2\" color=\"darkblue\"><b>Hint to calculate recall</b></font></summary>\n",
    "           &emsp; &emsp; You can calculate recall as <code>rec = tp / (tp + fn)</code>\n",
    "    </details>\n",
    "        \n",
    "    <details>\n",
    "          <summary><font size=\"2\" color=\"darkblue\"><b>Hint to calculate F1</b></font></summary>\n",
    "           &emsp; &emsp; You can calculate F1 as <code>F1 = 2 * prec * rec / (prec + rec)</code>\n",
    "    </details>\n",
    "    \n",
    "</details>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "You can check your implementation using the code below"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Best epsilon found using cross-validation: 8.990853e-05\n",
      "Best F1 on Cross Validation Set: 0.875000\n",
      "\u001b[92mAll tests passed!\n"
     ]
    }
   ],
   "source": [
    "p_val = multivariate_gaussian(X_val, mu, var)\n",
    "epsilon, F1 = select_threshold(y_val, p_val)\n",
    "\n",
    "print('Best epsilon found using cross-validation: %e' % epsilon)\n",
    "print('Best F1 on Cross Validation Set: %f' % F1)\n",
    "    \n",
    "# UNIT TEST\n",
    "select_threshold_test(select_threshold)\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**Expected Output**:\n",
    "<table>\n",
    "  <tr>\n",
    "    <td> <b>Best epsilon found using cross-validation: <b>  </td> \n",
    "    <td> 8.99e-05</td> \n",
    "   </tr>    \n",
    "   <tr>\n",
    "    <td> <b>Best F1 on Cross Validation Set: <b>  </td>\n",
    "     <td> 0.875 </td> \n",
    "  </tr>\n",
    "</table>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Now we will run your anomaly detection code and circle the anomalies in the plot (Figure 3 below).\n",
    "\n",
    "<img src=\"images/figure3.png\" width=\"500\" height=\"500\">"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[<matplotlib.lines.Line2D at 0x7f9000717290>]"
      ]
     },
     "execution_count": 17,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Find the outliers in the training set \n",
    "outliers = p < epsilon\n",
    "\n",
    "# Visualize the fit\n",
    "visualize_fit(X_train, mu, var)\n",
    "\n",
    "# Draw a red circle around those outliers\n",
    "plt.plot(X_train[outliers, 0], X_train[outliers, 1], 'ro',\n",
    "         markersize= 10,markerfacecolor='none', markeredgewidth=2)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<a name=\"2.4\"></a>\n",
    "### 2.4 High dimensional dataset\n",
    "\n",
    "Now,  we will run the anomaly detection algorithm that you implemented on a more realistic and much harder dataset.\n",
    "\n",
    "In this dataset, each example is described by 11 features, capturing many more properties of your compute servers.\n",
    "\n",
    "Let's start by loading the dataset.\n",
    "\n",
    "- The `load_data()` function shown below loads the data into variables `X_train_high`, `X_val_high` and `y_val_high`\n",
    "    -  `_high` is meant to distinguish these variables from the ones used in the previous part\n",
    "    - We will use `X_train_high` to fit Gaussian distribution \n",
    "    - We will use `X_val_high` and `y_val_high` as a cross validation set to select a threshold and determine anomalous vs normal examples"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [],
   "source": [
    "# load the dataset\n",
    "X_train_high, X_val_high, y_val_high = load_data_multi()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Check the dimensions of your variables\n",
    "\n",
    "Let's check the dimensions of these new variables to become familiar with the data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "The shape of X_train_high is: (1000, 11)\n",
      "The shape of X_val_high is: (100, 11)\n",
      "The shape of y_val_high is:  (100,)\n"
     ]
    }
   ],
   "source": [
    "print ('The shape of X_train_high is:', X_train_high.shape)\n",
    "print ('The shape of X_val_high is:', X_val_high.shape)\n",
    "print ('The shape of y_val_high is: ', y_val_high.shape)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Anomaly detection \n",
    "\n",
    "Now, let's run the anomaly detection algorithm on this new dataset.\n",
    "\n",
    "The code below will use your code to \n",
    "* Estimate the Gaussian parameters ($\\mu_i$ and $\\sigma_i^2$)\n",
    "* Evaluate the probabilities for both the training data `X_train_high` from which you estimated the Gaussian parameters, as well as for the the cross-validation set `X_val_high`. \n",
    "* Finally, it will use `select_threshold` to find the best threshold $\\varepsilon$. "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Best epsilon found using cross-validation: 1.377229e-18\n",
      "Best F1 on Cross Validation Set:  0.615385\n",
      "# Anomalies found: 117\n"
     ]
    }
   ],
   "source": [
    "# Apply the same steps to the larger dataset\n",
    "\n",
    "# Estimate the Gaussian parameters\n",
    "mu_high, var_high = estimate_gaussian(X_train_high)\n",
    "\n",
    "# Evaluate the probabilites for the training set\n",
    "p_high = multivariate_gaussian(X_train_high, mu_high, var_high)\n",
    "\n",
    "# Evaluate the probabilites for the cross validation set\n",
    "p_val_high = multivariate_gaussian(X_val_high, mu_high, var_high)\n",
    "\n",
    "# Find the best threshold\n",
    "epsilon_high, F1_high = select_threshold(y_val_high, p_val_high)\n",
    "\n",
    "print('Best epsilon found using cross-validation: %e'% epsilon_high)\n",
    "print('Best F1 on Cross Validation Set:  %f'% F1_high)\n",
    "print('# Anomalies found: %d'% sum(p_high < epsilon_high))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**Expected Output**:\n",
    "<table>\n",
    "  <tr>\n",
    "    <td> <b>Best epsilon found using cross-validation: <b>  </td> \n",
    "    <td> 1.38e-18</td> \n",
    "   </tr>    \n",
    "   <tr>\n",
    "    <td> <b>Best F1 on Cross Validation Set: <b>  </td>\n",
    "     <td> 0.615385 </td> \n",
    "  </tr>\n",
    "    <tr>\n",
    "    <td> <b># anomalies found: <b>  </td>\n",
    "     <td>  117 </td> \n",
    "  </tr>\n",
    "</table>"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.6"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
